package cn.fl.riskctrl.xjdb.transform;

import java.util.ArrayList;
import java.util.List;

import cn.cmm.base.framework.utils.CollectionUtils;
import cn.fl.riskctrl.xjdb.vo.XjnpLoanVO;
import fl.riskctrl.facade.xjdb.dto.XjnpLoanDTO;

 /**
 * @Description: 信加个人信用报告_贷款(TP_LOAN) 转换器
 * @Description: VO是客户端传递数据到服务端进行转换的数据 
 * @Description: VO转换数据变成DTO传递到服务端 
 * @Description: VO不能在服务端出现
 */
public class XjnpLoanVOTransform {


	/**
	 * DTO 转  VO
	 * @param po XjnpLoanDTO
	 * @return XjnpLoanVO
	 */
	public static XjnpLoanVO toVO(XjnpLoanDTO dto) {
		XjnpLoanVO  vo = null;
		if (dto != null) { 
			vo = new XjnpLoanVO();
			vo.setId(dto.getId());
			vo.setAccount(dto.getAccount());//业务号
			vo.setActualpaymentamount(dto.getActualpaymentamount());//本月实还款
			vo.setBalance(dto.getBalance());//本金余额
			vo.setClass5state(dto.getClass5state());//五级分类
			vo.setCreditlimitamount(dto.getCreditlimitamount());//合同金额
			vo.setCue(dto.getCue());//基本信息提示
			vo.setCurroverdueamount(dto.getCurroverdueamount());//当前逾期金额
			vo.setCurroverduecyc(dto.getCurroverduecyc());//当前逾期期数
			vo.setCurrency(dto.getCurrency());//币种
			vo.setEnddate(dto.getEnddate());//到期日期
			vo.setFinanceorg(dto.getFinanceorg());//贷款机构
			vo.setFinancetype(dto.getFinancetype());//机构类型
			vo.setGuaranteetype(dto.getGuaranteetype());//担保方式
			vo.setLatest24beginmonth(dto.getLatest24beginmonth());//最近24个月还款状态起始月
			vo.setLatest24endmonth(dto.getLatest24endmonth());//最近24个月还款状态截止月
			vo.setLatest24state(dto.getLatest24state());//24个月还款状态
			vo.setLatest5yearbeginmonth(dto.getLatest5yearbeginmonth());//最近5年内的逾期/透支起始月
			vo.setLatest5yearendmonth(dto.getLatest5yearendmonth());//最近5年内的逾期/透支截止月
			vo.setOpendate(dto.getOpendate());//发放日期
			vo.setOverdue31to60amount(dto.getOverdue31to60amount());//逾期31-60天未归还贷款本金
			vo.setOverdue61to90amount(dto.getOverdue61to90amount());//逾期61-90天未归还贷款本金
			vo.setOverdue91to180amount(dto.getOverdue91to180amount());//逾期91-180天未归还贷款本金
			vo.setOverdueover180amount(dto.getOverdueover180amount());//逾期180天以上未归还贷款本金
			vo.setPaymentcyc(dto.getPaymentcyc());//还款期数
			vo.setPaymentrating(dto.getPaymentrating());//还款频率
			vo.setRecentpaydate(dto.getRecentpaydate());//最近一次还款日期
			vo.setRemainpaymentcyc(dto.getRemainpaymentcyc());//剩余还款期数
			vo.setScheduledpaymentamount(dto.getScheduledpaymentamount());//本月应还款
			vo.setScheduledpaymentdate(dto.getScheduledpaymentdate());//应还款日
			vo.setState(dto.getState());//账户状态
			vo.setStateenddate(dto.getStateenddate());//状态截止日
			vo.setStateendmonth(dto.getStateendmonth());//状态截止月/转出月
			vo.setType(dto.getType());//贷款种类细分
			vo.setReportNo(dto.getReportNo());//报告编号-关联报告表ID

			vo.setCrtTm(dto.getCrtTm());//创建时间
			vo.setCrtUsrId(dto.getCrtUsrId());//创建人
			vo.setMdfTm(dto.getMdfTm());//修改时间
			vo.setMdfUsrId(dto.getMdfUsrId());//修改人
		}
		return vo;
	}

	/**
	 * VO 转 DTO
	 * @param dto XjnpLoanVO
	 * @return XjnpLoanDTO
	 */
	public static XjnpLoanDTO toDTO(XjnpLoanVO vo) {
		XjnpLoanDTO dto = null;
		if (vo != null) {
			dto = new XjnpLoanDTO();
			dto.setId(vo.getId());
			dto.setAccount(vo.getAccount());//业务号
			dto.setActualpaymentamount(vo.getActualpaymentamount());//本月实还款
			dto.setBalance(vo.getBalance());//本金余额
			dto.setClass5state(vo.getClass5state());//五级分类
			dto.setCreditlimitamount(vo.getCreditlimitamount());//合同金额
			dto.setCue(vo.getCue());//基本信息提示
			dto.setCurroverdueamount(vo.getCurroverdueamount());//当前逾期金额
			dto.setCurroverduecyc(vo.getCurroverduecyc());//当前逾期期数
			dto.setCurrency(vo.getCurrency());//币种
			dto.setEnddate(vo.getEnddate());//到期日期
			dto.setFinanceorg(vo.getFinanceorg());//贷款机构
			dto.setFinancetype(vo.getFinancetype());//机构类型
			dto.setGuaranteetype(vo.getGuaranteetype());//担保方式
			dto.setLatest24beginmonth(vo.getLatest24beginmonth());//最近24个月还款状态起始月
			dto.setLatest24endmonth(vo.getLatest24endmonth());//最近24个月还款状态截止月
			dto.setLatest24state(vo.getLatest24state());//24个月还款状态
			dto.setLatest5yearbeginmonth(vo.getLatest5yearbeginmonth());//最近5年内的逾期/透支起始月
			dto.setLatest5yearendmonth(vo.getLatest5yearendmonth());//最近5年内的逾期/透支截止月
			dto.setOpendate(vo.getOpendate());//发放日期
			dto.setOverdue31to60amount(vo.getOverdue31to60amount());//逾期31-60天未归还贷款本金
			dto.setOverdue61to90amount(vo.getOverdue61to90amount());//逾期61-90天未归还贷款本金
			dto.setOverdue91to180amount(vo.getOverdue91to180amount());//逾期91-180天未归还贷款本金
			dto.setOverdueover180amount(vo.getOverdueover180amount());//逾期180天以上未归还贷款本金
			dto.setPaymentcyc(vo.getPaymentcyc());//还款期数
			dto.setPaymentrating(vo.getPaymentrating());//还款频率
			dto.setRecentpaydate(vo.getRecentpaydate());//最近一次还款日期
			dto.setRemainpaymentcyc(vo.getRemainpaymentcyc());//剩余还款期数
			dto.setScheduledpaymentamount(vo.getScheduledpaymentamount());//本月应还款
			dto.setScheduledpaymentdate(vo.getScheduledpaymentdate());//应还款日
			dto.setState(vo.getState());//账户状态
			dto.setStateenddate(vo.getStateenddate());//状态截止日
			dto.setStateendmonth(vo.getStateendmonth());//状态截止月/转出月
			dto.setType(vo.getType());//贷款种类细分
			dto.setReportNo(vo.getReportNo());//报告编号-关联报告表ID

			dto.setCrtTm(vo.getCrtTm());//创建时间
			dto.setCrtUsrId(vo.getCrtUsrId());//创建人
			dto.setMdfTm(vo.getMdfTm());//修改时间
			dto.setMdfUsrId(vo.getMdfUsrId());//修改人
		}
		return dto;
	}
	
	/**
	 * DTO集合 转 VO集合
	 * @param List<XjnpLoanDTO>
	 * @return List<XjnpLoanVO>
	 */
	public static List<XjnpLoanVO> toVOList(List<XjnpLoanDTO> list) {
		List<XjnpLoanVO>  voList = new ArrayList<XjnpLoanVO>();
		if(CollectionUtils.isNotEmpty(list)){
			for (XjnpLoanDTO dto : list) {
				voList.add(toVO(dto));
			}
		}
		return voList;
	}
	
	/**
	 * VO集合 转 DTO集合
	 * @param list List<XjnpLoanVO>
	 * @return List<XjnpLoanDTO>
	 */
	public static List<XjnpLoanDTO> toDTOList(List<XjnpLoanVO> list) {
		List<XjnpLoanDTO>  dtoList = new ArrayList<XjnpLoanDTO>();
		if(CollectionUtils.isNotEmpty(list)){
			for (XjnpLoanVO vo : list) {
				dtoList.add(toDTO(vo));
			}
		}
		return dtoList;
	}
}
